The change from centralized, batch operation of data processing systems to distributed, interactive usage has resulted in more users being directly involved with these systems. When a data processing system is used in a country with multiple national languages or is accessed by user terminals located in different countries with different national languages, the system must accept commands and respond in the national language or languages of the users. In the past, support for national languages has been accomplished by placing all messages in a collection that can be replaced either completely such that all users of a given system will see messages in a selected national language, or on a user by user basis such that each user will see messages of one national language. The first approach fails to offer a solution for users in a country, such as Canada, where there are more than one national language. Both approaches handle output only, are typically limited to messages, and have the following problems:
1. Language-dependent text other than messages exist in most computers in the form of language dependent (a) command verbs entered as input, such as "Delete", which must be recognizable by a program without need for separate programs to handle each national language, (b) keywords entered as input in commands or as screen panel fields, such as "source", (c) online documentation, or (d) prompts and help information.
2. They do not allow appropriate responses from service functions in a connected computer that has no knowledge of the requestor's language preference. For example, a user may invoke service A on computer 1. Service A may request assistance from service B on computer 2, and service B may need to send messages to the user even though the usage is indirect.
3. They do not allow use of a new function that is supported in a language that could be understood by the user if the preferred language is not yet available.
Even where the national language problem is solved, the fact that computer users are becoming more heterogeneous as the usage of computers spreads raises other problems. For example, not only may the national language preference of users in a distributed data processing system differ, but the level of experience or knowledge of the users may vary widely. In many cases, different classes of users need to use the same computer services, and this requires messages to be customized for each class of user. For example, a programmer could understand the message, "Node XYZ does not respond, reinitialization will take 10 minutes." and could arrange other work until it became available. However, mail room data entry personel whose work depends on node XYZ might more easily understand, "Take a 10 minute coffee break and then try again." Some messages could, of course, be understood oy all classes of users. Therefore, not only are translations of all messages needed for users in different national languages, but some messages must be customized for different classes of users.
Many existing applications such as COBOL and FORTRAN were originally written only in English. This has not been a problem in the past where, for example, a German programmer has learned the meaning of the application's English commands. However, as the use of such products moves away from the data processing professional, the need for national language support in the application products increases. Unfortunately, it is often time consuming and costly to modify existing applications which have been written to support only one language in such a way that they would support more than one. A common architecture or design has not been found which might be applied to solve this problem since each application addresses its message and dialog generation in a different way. One alternative to address this problem involves producing different versions of the application, each one of which supports a single national language. This is not only expensive to develop, test, and maintain but requires the installation which has a need for more than one language to purchase multiple licenses.